拾遗 - 计算机网络

web服务器

Apache、Tomcat、JBoss、Nginx

  • 硬件部分,一个网络服务器是一台存储了网络服务软件以及网站的组成文件(比如,HTML文档、图片、CSS样式表和JavaScript文件)的计算机。它接入到互联网并且支持与其他连接到互联网的设备进行物理数据的交互。
  • 软件部分,网络服务器包括控制网络用户如何访问托管文件的几个部分,至少他要是一台HTTP服务器。一台HTTP服务器是一种能够理解URL(网络地址)和HTTP(浏览器用来查看网页的协议)的软件。通过服务器上存储的网站的域名(比如mozilla.org)可以访问这个服务器,并且他还可以将他的内容分发给最终用户的设备。

OSI七层协议
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

CDN

内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术

应用层

DNS、HTTP、HTTPS所在的层为应用层、浏览器会将应用层的包交给下一层去完成,通过 socket 编程实现

传输层

两种协议

  • 无连接的协议UDP
  • 面向连接的协议TCP
  • - 会保证这个包能够到达目的地、如果不能到达、重新发送直至到达
    • 所谓的建立连接,是为了在客户端和服务端维护连接,而建立一定的数据结构来维护双方交互的状态
    • 可靠交付:无差错、不丢失、不重复
    • 面向数据流
    • 是可以用拥塞控制的
    • 是一个有状态服务
    • 总结:顺序问题、丢包问题、连接维护、流量控制、拥塞控制

TCP和UDP区别

通俗地讲TCP就是有脑子的,里面精确地记着发送了没有,接收到没有,发送到哪个了,应该接收哪个了,错一点儿都不行。而UDP则是无状态服务。通俗地说就是没脑子,天真无邪的,发出去就发出去了。

UDP应用场景

  • 需要资源少,在网络情况比较好的内网,或者对于丢包不敏感的应用
  • 不需要一对一沟通,建立连接,而是可以广播的应用
  • 需要处理速度快,时延低,可以容忍少数丢包,但是要求即便网络拥塞,也毫不退缩

网页或者APP的访问、流媒体协议、实时游戏、loT物联网、移动通讯领域

TCP

连接三次握手,断开四次挥手

网络层

IP协议:机器IP和目标的服务器IP地址

MAC层

网关 路由协议

总结

  • IP是地址,有定位功能(公网和私有);MAC是身份证,无定位功能
  • CIDR
  • DHCP协议主要是给用户租用IP地址,和房产中介很像,要商谈、签约、续租,广播还不能抢单
  • DHCP协议能给客户推荐‘装修队’PXE,能安装系统(云计算领域)